package com.hjj.jvm.oom;

import java.util.HashSet;
import java.util.Set;

/**
 * <h2>方法区和运行时常量池溢出</h2>
 *
 * <p>在JDK 6中 VM Args：-XX:PermSize=6M -XX:MaxPermSize=6M</p>
 * <p>在JDK 7以及以上的版本中使用上述参数不会有作用，因为原本存放在永久代的字符串常量池被移至java堆之中</p>
 *
 */
public class RuntimeConstantPoolOOM {
    public static void main(String[] args) {
//        Set<String> set = new HashSet<>();
//        short i = 0;
//        while (true) {
//            set.add(String.valueOf(i++).intern());
//        }

        String str1 = new StringBuilder("计算机").append("软件").toString();
        System.out.println(str1.intern() == str1);
        String str2 = new StringBuilder("ja").append("va").toString();
        System.out.println(str2.intern() == str2);
    }
}
